Skip to main content

3D UI 教程

概述

示例的左侧创建2D UI,右侧创建3D UI,移动DefaultPawn以检测场景中的静态物体是否进入碰撞范围,将其名称在界面中添加或移除。

创建关卡

首先创建一个关卡,依次点击菜单栏File -> New Level From Template (Ctrl+N) -> template_empty。

2022-11-23_165825

依次往template_empty的场景中添加地形、灯光和天空。

点击Create Actor按钮,依次选择Visual中的Terrain Actor、Direct Light和Sky Sphere进行创建。

2022-11-23_170335

把恐龙模型从Project面板拖拽到关卡中。

2022-11-23_171410

给恐龙添加包围盒。选中恐龙后,依次点击Inspector面板中的Add Component -> Box Component,可通过Shape下的Box Extent X、Box Extent Y和Box Extent Z调整包围盒大小。

选中调整好的恐龙模型,可以通过Ctrl + CCtrl + V在场景中复制多个物体。

image-20220722151051840

image-20220721170500099

添加Default Pawn

依次点击Create Game Object -> Default Pawn,在Inspector面板中选中LDefaultPawn(instance),Actor下的Actor String Tag属性为其添加字符串标签(脚本中通过Tag查询对象)。

2022-11-28_173353

image-20220721170210189

选择CollisionComponent子组件,勾选Physics下的Trigger属性,将Collision下的Collision Profile Name属性设置为Trigger实现碰撞,可在Shape下的Sphere Radius属性修改其半径大小。

image-20220721165859338

image-20220721170036443

在Default Pawn上添加3D UI组件

在Inspector面板中依次点击Add Component -> Control 3D Component。

为Component下的Actor Component String Tag属性添加字符串标签,在Control3D下的File属性中浏览并选择UI文件。UI将呈现到场景中,拖动UI调整位置及角度到视角前方(否则Play时视角看不到UI)。

image-20220722152440022

image-20220722152621158

Default Pawn在场景中移动时,3D UI需跟随移动,始终保持在前方,设置以下属性:

在Inspector面板中选中LDefaultPawn(instance),勾选Pawn下Use Controller Angle Pitch、Use Controller Angle Yaw和Use Controller Angle Roll,并设置Auto Possess Player。

image-20220721163733564

我们还需创建一个物体来绑定我们编写的脚本,依次点击Create Game Object -> Game Object,并为其添加脚本。

2022-11-28_174134

依次点击Inspector面板下的Add Component -> Script Component,在Script下的Script File添加脚本文件。

脚本文件的代码详见示例里的3d_uid\3d_ui.lua。

image-20220721172304545

运行游戏

点击Play按钮,开始游戏。

image-20220721171922800